%-----------------------------------------------------------------------------
\chapter{Stand der Technik}
%-----------------------------------------------------------------------------


%-----------------------------------------------------------------------------
\section{Volltextsuche}
%-----------------------------------------------------------------------------
"`The basic principle of full-text search is that the user enters a (typically
small) set of keywords, and the search engine returns a list of documents, in
which some or all of these keywords (or variations of them like spelling
variants or synonyms) occur. The results are ranked by how prominent these
occurrences are (term frequency, occurrence in title, relative proximity,
absolute importance of the document, etc.)"'
\cite[S.1]{Bast:2012:CSF:2379307.2379311}. Auch müssen Wörter welche aus dem
Suchbegriff sowie weiteren Zeichen bestehen gefunden werden. Dies bedeutet dass
wenn nach "`Haus"' gesucht wird auch die Wörter "`Hausübung"',
"`Fertigteilhaus"' sowie "`WohnhausbaugenosschenschaftsvertreterInnen"' als
Suchtreffer erkannt werden müssen.



\subsection{Indexbasierende Volltextsuche}
Analog zur Suche nach Primär-, sowie Fremdschlüsseln in relationalen
Datenbanken \cite[S. 434 ff]{cormen2001introduction} ist es auch bei der
Volltextsuche notwendig auf entsprechende Indexstrukturen zugreifen zu
können, um bei Suchvorgängen, vor allem bei großen Datenmengen, eine akzeptable
Antwortzeit sowie Systembelastung zu erzielen. "`With document collections
spanning billions of pages, current web search engines must be able to
efficiently and effectively search multiple terabytes of data. Given the latency
demands users typically place on interactive applications, the engine must be
able to provide a good answer within a fraction of a second, while
simultaneously serving tens of thousands of such requests. To perform this task
efficiently, current web search engines use an inverted index, a widely used and
extensively studied data structure that supports fast retrieval of documents
containing a given set of terms"' \cite[S.1]{Ding:2010:STD:1772690.1772723}.
"`Full-text indexes provide fast substring search over large text collections"'
\cite[S.1]{Navarro:2007:CFI:1216370.1216372}.





\subsection{Google Search Appliance}
Ein kommerzielles Soft- und Hardwareprodukt der Firma Google Inc. welches auf
der mitzukaufenden Serverhardware vorinstalliert ausgeliefert wird
\cite[S.125]{GSA-WWU} \cite[S.6]{Butler-GSA}. "`The Google Search Appliance
(GSA) is an on-premises search solution suited to either Intranet use or an
Internet-facing Web site. Within an Enterprise setting, the GSA is able to
search across corporate portals and Web sites, file servers and Content
Management systems, and a growing list of business applications. Recent upgrades
have improved the GSA’s scalability, provided for increased customisation, and
enhanced search results. The GSA integrates well with enterprise Identity and
Access Management solutions, and is thereby able to ensure strong,
document-level security features. Over 200 file types can be indexed and
searched, and native ‘Content Connectors’ are available for a range of popular
Enterprise Applications"' \cite[S.1]{Butler-GSA}.
\newline
 




\subsection{Apache Lucene}
Ein nicht kommerzielles und quelltextoffenes Produkt welches seit 2001 von der
Apache Software \cite{Apache} Foundation entwickelt wird. Es ist eine "`
high-performance text search engine library written in Java. It can be used to
build full-text indices for large sets of documents. The indices store
information  on terms appearing within documents, including the positions of
terms in documents, the degree of relevance between documents and terms, etc.
The Apache Lucene library supports various features such as incremental
indexing, document scoring, and multi-index search with merged results"'
\cite[S.1]{ExperimentingLucene}







\subsubsection{Apache Solr}
Ein nicht kommerzielles und quelltextoffenes Produkt welches ebenfalls seit
2006 von der Apache Software \cite{Apache} Foundation entwickelt wird und als
eigenständiger Volltext-Suchserver - installiert in einem J2EE Servlet Container
- eingesetzt werden kann \cite{ApacheSolrMainSite}. "`Solr is a widely used
enterprise level Lucene index system. Besides the functionality provided by the
Apache Lucene library, Solr offers an extended set of features, including query
language extension, various document formats such as JSON and XML, etc"'
\cite[S.2]{ExperimentingLucene}.







\section{Smartphones}
"`The smart phone is a handheld device that offers advanced capabilities like
e-mail and Internet access beyond a typical mobile phone"'
\cite[S.146]{ETH-Smartphone}. Nach Definition "`der Cellular Telecommunications
and Internet Association (CTIA)"' sind Smartphones "`Wireless phones with
advanced data features and often keyboards. What makes the phone "`smart"' is
its ability to better manage data and Internet access."' \cite{CTIA},
\cite[S.146]{ETH-Smartphone}. "`Such devices have increased the functionalities
available to users partly due to their large number of built-in sensors (GPS,
Bluetooth, accelerometer, microphone, camera, etc). It is now commonplace to
talk about an ecosystem of functions, applications, and services enabled by
smartphones"' \cite[S.1]{SmartphonesInTheWild}. Weiters verfügen Sie über
Prozessoren sowie genügend Zwischenspeicher deren Leistungsvermögen, auch wenn
es nur einen Bruchteil dessen ist was moderne Arbeitsplatzrechner aufweisen,
ausreicht um über ebenfalls vorhandene Programmierschnittstellen
\cite[S.146]{ETH-Smartphone} selbst entwickelte Programme auszuführen. Im
Unterschied zu reinen Mobiltelefonen verfügen Sie auch immer über ein
Betriebssystem \cite[S.146]{ETH-Smartphone}.










\subsection{Verschiedene Betriebssysteme}
Die einzelnen Betriebssysteme der verschiedenen HerstellerInnen unterscheiden
sich technisch untereinander \cite[S.147]{ETH-Smartphone}. Laut einer vom
Informationstechnologieberatungsunternehmen Gartner 2012 durchgeführten Studie
\cite{Gartner-mobile-OS-Statistic} wurden im vierten Quartal 2012, im Vergleich
zum vierten Quartal 2011, weltweit die folgende Anzahl an Smartphones mit den
folgenden darauf laufenden Betriebssystemen verkauft (siehe Tab.~\ref{mobileOSTableAbsolut}):
\newline




\input{GartnerSurveyDataTableAbsolut}


Die prozentuellen weltweiten Marktanteile der mobilen Betriebssysteme bei neu
verkauften Smartphones betragen daher, wiederum im Vergleich des vierten
Quartals 2012 mit dem vierten Quartal 2011, (siehe
Tab.~\ref{mobileOSTablePercentage}).



\input{GartnerSurveyDataTablePercentage}







\subsection{Applikationen}
Für alle mobilen Betriebssysteme der verschiedenen HerstellerInnen können von
Dritten über umfangreiche Programmierschnittstellen und -bibliotheken
\newline
leistungsstarke Applikationen, sehr oft auch "`Apps"' genannt, entwickelt werden
\cite[S.147]{ETH-Smartphone}. Diese werden direkt vom Betriebssystem des Gerätes
ausgeführt \cite[S.147]{ETH-Smartphone} und können von den BenutzerInnen,
zumeist über sogenannte "`App Stores"' heruntergeladen, und sodann, installiert
sowie bei Bedarf deinstalliert werden.






\subsection{Verschiedene Plattformen}
Die einzelnen Betriebssysteme der verschiedenen Smartphones bedingen auch
unterschiedliche Programmierschnittstellen und -bibliotheken sowie die
unterschiedliche Unterstützung von Programmiersprachen
\cite[S.147]{ETH-Smartphone} (siehe Tab.~\ref{VerschPlattformenTable}).


\input{VerschPlattformenTable}





\subsection{Mobile Webseiten für Smartphones}
Um Unterschied zu einer, in einer der jeweils vom mobilen Betriebssystem
unterstützen Entwicklungssprache und an die jeweils spezifischen
Programmierschnittstellen und -bibliotheken angepaßten, installierbaren
Applikation können speziell für Smartphones angepaßte, sogenannte mobile
Webseiten, erstellt werden. "`Mobile devices are now commonly equipped with
powerful, 
\newline
HTML5-compliant web browsers making the web browser an ideal platform
for mobile development. (For brevity, we frequently use the term “HTML5” to mean
the HTML5, JavaScript, and CSS combination.) Modern HTML5-capable browsers
present a JavaScript API capable of communicating sensor information, storing
state locally, playing audio and video, rendering 2D and 3D graphics,
communicating with servers, and handling touch, accelerometer, GPS and compass
events. They are also capable of caching applications client side, making them
available to a user even when offline. At present, though browsers typically do
not have access to all device features (such as contacts and camera), they do
give JavaScript applications access to a subset sufficient for the development
of compelling mobile applications. Additionally, this platform, if sufficiently
standardized, leads to the possibility of near universal application deployment
\ldots The disadvantages of HTML5 as a platform include fragmentation, that is,
the degree to which browsers support the current HTML5 standard. Additionally,
as stated above, the HTML5 standard is currently missing support for many
standard device features, for example, access to contacts and calendar and
access to multimedia sensors. HTML5 does promise to include support for more
device features in the future. In general, a user’s experience depends on both
the devices capabilities as well as the degree of HTML5 support"' \cite[S.57
f]{EducatingPaper}.








\section{Datenaustausch}
Um die notwendigen Daten (Suchbegriff(e) der BenutzerInnen, Ergebnismenge der
Abfrage, usw. usf.) zwischen entferntem Dienst und der mobilen Applikation über
das Netzwerk auszutauschen ist es übliche Praxis Webservices zu verwenden.


\subsection{Webservices}
Webservices beschreiben grundsätzlich nach Definition des World Wide Web
Consortiums (W3C) im Extensible Markup (XML) Format \cite{XML} die Art und Weise
wie verschiedene Softwarekomponenten über das Netzwerk zusammenarbeiten
\cite[S.7 u. 63]{W3C-WS}.




\subsubsection{SOAP-Webservices}
Mit den standardisierten SOAP Webservices \cite{W3C-WS} können beliebige
Operationen auf beliebigen Objekten definiert und diese Objekte und/oder
Operationen entfernten Softwarekomponenten zur Verfügung gestellt werden. Sie
verwenden ausschließlich XML als Datenaustauschformat und bestehen aus 3
Bestandteilen:

  \begin{itemize}
    \item
    Webservice Description Language (WSDL) \cite{W3C-WSDL}
    \newline
    Beschreibt die von einzelnen SOAP-Webservices zur Verfügung gestellte
    Funktionalität in XML.
    \item
    SOAP \cite{W3C-SOAP}
    \newline
    Der Inhalt der mittels Webservices ausgetauschten Informationen bzw. die vom
    Webservice zur Verfügung gestellte Funktionalität in XML.
    \item
    Universal Description, Discovery and Integration (UDDI) \cite{OASIS-UDDI}
    \newline
    Definiert im XML Format die Struktur zentraler Verzeichnisdienste für
    Webservices. Nicht notwendig für die Verwendung von SOAP-Webservices an
    sich.
  \end{itemize}






\subsubsection{Representational State Transfer Webservices (REST-Webservices)}
Representational State Transfer Webservices (REST-Webservices) sind keine
standardisierte Form des Datenaustausches oder Aufrufes von Funktionalitäten
zwischen verschiedenen Komponenten sondern vielmehr ein Architekturstil
\cite[S.76 ff]{Fielding:2000:ASD:932295}. Es werden Teile des HTTP-Protokolles
verwendet um Webservices aufzurufen, zB die Methode "`GET"' um Daten abzufragen
oder die Methode "`PUT"' um Daten zu speichern. Dies im Zusammenhang mit einem
Url kann benutzt werden um einer entfernten Komponente mitzuteilen Daten
zurückzuliefern oder Daten zu speichern. Die entfernte Komponente kann aber muss
nicht aufgrund dessen Daten im XML- oder einem anderen Format zurückliefern. Das
Wesentliche bei REST-Webservices ist dass zwischen aufrufender und aufgerufener
Komponente ein gemeinsames, nicht zwingend formal definiertes, Verständnis über
die Funktionsweise besteht.












